﻿package com.obas.model.type
{
	import com.ease.common.enums.TextualEnum;
	import com.ease.lang.Enum;
	import com.ease.lang.EnumConstants;
	import com.obas.model.type.AttributeColumnType;
	import com.obas.model.type.DimensionAttributeType;

	[Bindable]
	[RemoteClass(alias="com.obas.model.type.DimensionAttributeType")]

	public class DimensionAttributeType extends Enum
	{
		/* static init */
		{ initEnum(DimensionAttributeType); }

		/* Constants */
		public static const LOCATION_ID:DimensionAttributeType = new DimensionAttributeType("LOCATION_ID", "地域", "locationId", "LOCATION_ID", "NUMBER", 0, 30);
		public static const BANDWIDTHTYPE_ID:DimensionAttributeType = new DimensionAttributeType("BANDWIDTHTYPE_ID", "速率", "bandwidthTypeId", "BANDWIDTHTYPE_ID", "NUMBER", 0, 30);
		public static const CUSTOMER_ID:DimensionAttributeType = new DimensionAttributeType("CUSTOMER_ID", "用户名", "customerId", "CUSTOMER_ID", "NUMBER", 0, 60);
		public static const DEVICE_ID:DimensionAttributeType = new DimensionAttributeType("DEVICE_ID", "设备ID", "deviceId", "DEVICE_ID", "NUMBER", 0, 100);
		public static const ROUTE_ID:DimensionAttributeType = new DimensionAttributeType("ROUTE_ID", "路由ID", "routeId", "ROUTE_ID", "NUMBER", 0, 100);
		public static const IPSOURCE:DimensionAttributeType = new DimensionAttributeType("IPSOURCE", "IP源", "ipSource", "IPSOURCE", "VARCHAR2", 255, 140);
		public static const PORTSOURCE:DimensionAttributeType = new DimensionAttributeType("PORTSOURCE", "P源", "portSource", "PORTSOURCE", "VARCHAR2", 255, 150);
		public static const IPDESTINATION:DimensionAttributeType = new DimensionAttributeType("IPDESTINATION", "IP目标", "ipDestination", "IPDESTINATION", "VARCHAR2", 255, 160);
		public static const PORTDESTINATION:DimensionAttributeType = new DimensionAttributeType("PORTDESTINATION", "P目标", "portDestination", "PORTDESTINATION", "VARCHAR2", 255, 170);
		public static const SVCIDENTITY:DimensionAttributeType = new DimensionAttributeType("SVCIDENTITY", "业务名称", "svcIdentity", "SVCIDENTITY", "NUMBER", 0, 180);
		public static const APPIDENTITY:DimensionAttributeType = new DimensionAttributeType("APPIDENTITY", "应用名称", "appIdentity", "APPIDENTITY", "NUMBER", 0, 190);
		public static const PORT_ID:DimensionAttributeType = new DimensionAttributeType("PORT_ID", "PORT", "portId", "PORT_ID", "NUMBER", 0, 220);
		public static const SVLAN_ID:DimensionAttributeType = new DimensionAttributeType("SVLAN_ID", "SVLAN", "svlanId", "SVLAN_ID", "NUMBER", 0, 210);
		public static const CVLAN:DimensionAttributeType = new DimensionAttributeType("CVLAN", "CVLAN", "cvlan", "CVLAN", "VARCHAR2", 255, 220);

		private var _text:String;
		private var _code:String;
		private var _columnName:String;
		private var _dataType:String;
		private var _length:int;
		private var _ordinal:int;

		/*public*/ function DimensionAttributeType(name:String=null ,text:String=null ,code:String=null ,columnName:String=null ,dataType:String=null ,length:int=0 ,ordinal:int=0) {
			super.name = name;
			this._text = text;
			this._code = code;
			this._columnName = columnName;
			this._dataType = dataType;
			this._length = length;
			this._ordinal = ordinal;
		}

		public function get text():String  { return this._text; }
		public function get code():String  { return this._code; }
		public function get columnName():String  { return this._columnName; }
		public function get dataType():String  { return this._dataType; }
		public function get length():int  { return this._length; }
		public function get ordinal():int  { return this._ordinal; }

		/* constant query */
		public static function getEnumConstants():Array {
			return Enum.getEnumConstants(DimensionAttributeType);
		}

		public static function get(constantName:String, caseSensitive:Boolean = false):DimensionAttributeType {
			return DimensionAttributeType(Enum.get(DimensionAttributeType, constantName, caseSensitive));
		}
	}
}